עמוד 1
תוכן לחצנים ולדים...3 מטלה ראשונה : ( מטלת מבוא(... 3 מטלה שנייה: בניית המעגל... 3 מטלה שלישית: הרצת תוכנית... מטלה רביעית :שינוי תוכנה... 5 מטלה חמישית: )לחצן (...5 PULL_DOWN מטלה שישית: הפעלת לד באמצעות לחצן עם תפיסה עצמית... 7 מטלה שביעית : מטלה שמינית: ( מניעת ריטוטים(...9 הדלקת תאורה משתנה באמצעות יציאה מסוג 11...PWM מטלה תשיעית : שינוי גווני לד RGB באמצעות שלושה לחצנים... 13 פרוייקטון... 11 עמוד
לחצנים ולדים המטרה : הכרת רכיב קלט- לחצן ופלט- נורה. מטלה ראשונה : ( מטלת מבוא( ענה על השאלות הבאות : א( ב( ג( כיצד בנוי לחצן. מה תפקידו של הלחצן במערכת? מה תפקידו של הנגד המחובר ללחצן? מה ההבדל בין מפסק ללחצן? מטלה שנייה: בניית המעגל צור את המעגל על פי השרטוט המצורף ערך רגיל פתוח רכיב מפסק נגד Ω עמוד 3
המפסק מחובר בשיטת.PULLUP כאשר המפסק לא לחוץ ברגל 1 יהיה. 5V בעת לחיצה האדמה מועברת להדק 1. הנורה מחוברת לרגל 13 ואדמה מטלה שלישית: הרצת תוכנית כתוב והרץ את התוכנית המצורפת. int switchpin=8; int ledpin=13; void setup( ) pinmode(ledpin, OUTPUT); pinmode(switchpin, INPUT); void loop( ) if(digitalread(switchpin) == HIGH) digitalwrite(ledpin, LOW); else digitalwrite(ledpin, HIGH); מלא את הטבלה הבאה: מצב לחצן נורה ( כבוי או דולק( לא לחוץ לחוץ עמוד
מטלה רביעית :שינוי תוכנה Push button -led )1 מה צריך לשנות בתוכנה כדי לקבל את המצבים המתוארים בטבלה. הרץ את התוכנה אחרי השינוי. מצב לחצן לא לחוץ לחוץ נורה ( כבוי או דולק( דולק כבוי ( העתק את התוכנית אחרי השינוי. מטלה חמישית: )לחצן ) PULL_DOWN משנים את שני החוטים המחוברים למפסק ערך רגיל פתוח רכיב מפסק נגד Ω עמוד 5
הרץ את התוכנית הבאה int switchpin=; int ledpin=13; void setup( ) pinmode(ledpin, OUTPUT); pinmode(switchpin, INPUT); void loop( ) if(digitalread(switchpin) == HIGH) digitalwrite(ledpin, LOW); else digitalwrite(ledpin, HIGH); מלא את הטבלה הבאה מצב לחצן נורה ( כבויה או דולקת( לא לחוץ לחוץ א( ב( הסבר מה השינוי הנוצר שהחלפנו את החיבורים שנה את התוכנית כדי לקבל מצבי הדלקה המופיעים במטלה שלישית. עמוד 6
מטלה שישית: הפעלת לד באמצעות לחצן עם תפיסה עצמית הדלקת נורה עם תפיסה עצמית מתבצעת באופן הבא: בלחיצה הנורה דולקת, בלחיצה הבאה הנורה נכבית וכך הלאה. 1( בנה את המעגל המשורטט ( הרץ את התוכנית int switchpin=; int ledpin=13; boolean lastbutton = LOW; boolean ledon = false; void setup( ) pinmode(switchpin, INPUT); pinmode(ledpin, OUTPUT); עמוד 7
void loop( ) if(digitalread(switchpin) == HIGH && lastbutton == LOW) ledon =! ledon ; lastbutton = HIGH; else lastbutton =digitalread(switchpin); digitalwrite(ledpin, ledon); 3( מלא את הטבלה הבאה : מצב נורה )כבויה / דולקת( לחיצה 1 לחיצה לחיצה 3 לחיצה נסח הכללה לגבי התהליך המתרחש, התייחס לקשר בין מספר הלחיצה ולמצב הלד. עמוד 8
מטלה שביעית : ( מניעת ריטוטים( Push button -led בעת לחיצה על המפסק נוצרים ריטוטים, כדי לבטל את הריטוטים המבטלת ריטוט ע"י השהייה ובדיקת הערך הנוכחי. יש לקרוא לפונקציה 1( הרכב מעגל לפי התרשים עמוד 9
( הרץ את התוכנית int switchpin=; int ledpin=13; boolean lastbutton = LOW; boolean ledon = false; boolean currentbutton= LOW; void setup( ) pinmode(switchpin, INPUT); pinmode(ledpin, OUTPUT); boolean debounce ( boolean last ) boolean current = digitalread( switchpin); if (last!= current) delay(50); current= digitalread(switchpin); return current; void loop( ) currentbutton= debounce(lastbutton); if(currentbutton== HIGH && lastbutton== LOW) ledon =! ledon ; lastbutton=currentbutton; digitalwrite(ledpin, ledon); עמוד 11
3( מלא את הטבלה הבאה : מצב נורה )כבויה / דולקת( לחיצה 1 לחיצה לחיצה 3 לחיצה מטלה שמינית: הדלקת תאורה משתנה באמצעות יציאה מסוג PWM במטלה זו בכל לחיצה על הלחצן עוצמת התאורה גדלה עד הערך המירבי. בלחיצה נוספת אחרי שהלד דולק בעוצמה מירבית, הלד נכבה ומתחיל תהליך הדלקה משתנה חדש. 1( בנה את המעגל המשורטט הלד מחובר לרגל 11 דרך נגד. עמוד 11
( הרץ את התוכנית int switchpin=8; int ledpin=11; boolean lastbutton = LOW; int ledlevel = 0; boolean currentbutton= LOW; void setup( ) pinmode(switchpin, INPUT); pinmode(ledpin, OUTPUT); boolean debounce ( boolean last ) boolean current = digitalread( switchpin); if (last!= current) delay(50); current= digitalread(switchpin); return current; void loop( ) currentbutton= debounce( lastbutton); if(currentbutton== HIGH && lastbutton == LOW) ledlevel= ledlevel + 51; lastbutton=currentbutton; if (ledlevel>55) ledlevel=0; עמוד 1
analogwrite(ledpin, ledlevel); Push button -led 3( עקוב אחרי 11 לחיצות ונסח הסבר לתהליך המתרחש בהתאם ללחיצות ledlevel= ledlevel + 5; אם משנים את הפקודה ;51 + ledlevel ledlevel= ל ) מה יגרום השינוי בתהליך התוכנית? ledlevel= ledlevel + 17; אם משנים את הפקודה ;51 + ledlevel ledlevel= ל )5 מה יגרום השינוי בתהליך התוכנית? 6( כתוב תוכנית המאפשרת שינוי של דרגות תאורה ( כיבוי + 3 רמות תאורה( מטלה תשיעית : שינוי גווני לד RGB באמצעות שלושה לחצנים. למערכת מחוברים שלושה לחצנים המשנים את גווני הצבעים. 1( חבר את המעגל הבא עמוד 13
( הרץ את התוכנית int redswitchpin=7; int greenswitchpin=6; int blueswitchpin=5; int redledpin=11; int greenledpin=10; int blueledpin=9; boolean redlastbutton = LOW; int redledlevel = 0; boolean redcurrentbutton= LOW; boolean greenlastbutton = LOW; int greenledlevel = 0; boolean greencurrentbutton= LOW; boolean bluelastbutton = LOW; int blueledlevel = 0; boolean bluecurrentbutton= LOW; void setup( ) pinmode(redswitchpin, INPUT); pinmode(redledpin, OUTPUT); pinmode(greenswitchpin, INPUT); pinmode(greenledpin, OUTPUT); pinmode(blueswitchpin, INPUT); pinmode(blueledpin, OUTPUT); עמוד 1
//------------------------------------------------------- boolean debounce1 ( boolean last1 ) boolean current1 = digitalread( redswitchpin); if (last1!= current1) delay(50); current1= digitalread(redswitchpin); return current1; //--------------------------------------------------------------- boolean debounce ( boolean last ) boolean current= digitalread( greenswitchpin); if (last!= current) delay(50); current= digitalread(greenswitchpin); return current; //-------------------------------------------------------------------------- boolean debounce3 ( boolean last3 ) boolean current3 = digitalread( blueswitchpin); if (last3!= current3) delay(50); current3= digitalread(blueswitchpin); עמוד 15
return current3; //----------------------------------------------------------------------- void loop( ) redcurrentbutton= debounce1(redlastbutton); if(redcurrentbutton== HIGH && redlastbutton == LOW) redledlevel= redledlevel + 51; redlastbutton=redcurrentbutton; if (redledlevel>55) redledlevel=0; analogwrite(redledpin, redledlevel); //====================================== greencurrentbutton= debounce(greenlastbutton); if(greencurrentbutton== HIGH && greenlastbutton == LOW) greenledlevel= greenledlevel + 51; greenlastbutton=greencurrentbutton; if (greenledlevel>55) greenledlevel=0; analogwrite(greenledpin, greenledlevel); //====================================== bluecurrentbutton= debounce3(bluelastbutton); if(bluecurrentbutton== HIGH && bluelastbutton == LOW) blueledlevel= blueledlevel + 51; bluelastbutton=bluecurrentbutton; if (blueledlevel>55) blueledlevel=0; analogwrite(blueledpin, blueledlevel); //====================================== עמוד 16
3( מלא את הטבלה : )המספר הרשום בטבלה מתאר את מספר הלחיצות( לחצן אדום לחצן ירוק לחצן כחול צבע ( מצא גוונים נוספים וציין את מספר הלחיצות לכל לחצן עמוד 17
פרוייקטון מספר חברי הקבוצה: זוגות מטרת המטלה: תכנון ובנייה של דגם הכולל לדים במצבי הדלקה שונים ומפסקים. הדרישות : א( בחירת נושא ב( תכנון המערכת, יצירת תרשים המערכת, בניית המערכת, כתיבת תוכנית ובדיקת המערכת ג ) הגשת חוברת המכילה את שלבי התכנון, תרשימי בנייה והתוכנה. ד ) הצגת הפרוייקטון. הערה: הפרוייקטון יכול להכיל נושאים ומרכיבים נוספים. מחוון ניקוד המשימה ניקוד מטלה 01 נק' בחירת נושא 01 נק' חקירת הנושא 01 נק' תכנון ( המערכת( 01 נק' בניית המערכת וכתיבת התוכנית 01 נק' כתיבת חוברת 01 נק' הצגת הפרוייקטון עמוד 18